eval()

Доступность

Flash Player 5, или более новый для полной функциональности. Вы можете использовать функцию eval() для экспорта в Flash Player 4, но вам придется использовать слэш-запись (slash notation) и довольствоваться доступом только к переменным, но не к свойствам и объектам.

Синтаксис

eval(expression:String) : Object

Параметры

expression Строка, содержащая имя искомой переменной, искомого свойства, объекта или мувиклипа.

Возвращает

Значение, ссылку на объект или мувиклип, или undefined.

Описание

Функция; предоставляет доступ к переменным, свойствам, объектам и мувиклипам по их имени. Если expression - это переменная или свойство, то будет возвращено значение переменной или свойства. Если же expression - это объект или мувиклип, то будет возвращена ссылка на объект или мувиклип. Если элемент с именем expression не удается найти, то функция возвращает undefined.

Во Flash 4, функция eval() была использована для эмуляции массивов; во Flash 5 или более новом, для этих целей вам следует использовать класс Array.

Во Flash 4, вы таже могли использовать eval() для динамического задания и получения значения переменной или имени экземпляра. Однако, вы также можете делать это при помощи оператора доступа к массиву ([]).

Во Flash 5 или более новом, вы не можете использовать eval() для динамического задания и получения значения переменной или имени экземпляра, потому что вы не можете использовать eval() слева от знака равенства. Например, замените код

eval ("var" + i) = "first";

на такой:

this["var"+i] = "first"

или этот:

set ("var" + i, "first");

Пример

Следующий пример использует eval() для установки свойств для динамически называемых мувиклипов. Этот ActionScript устанавливает свойство _rotation для трех мувиклипов, с именами square1_mc, square2_mc и square3_mc.

for (var i = 1; i<=3; i++) {
  setProperty(eval("square"+i+"_mc"), _rotation, 5);
}

Также вы можете использовать следующий ActionScript:

for (var i = 1; i<=3; i++) {
  this["square"+i+"_mc"]._rotation = -5;
}

См. также

Array class, set variable